package cn.iocoder.yudao.module.shop.controller.admin.orderfeedback.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
 * 顾客订单反馈 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class ShopOrderFeedbackBaseVO {

    @Schema(description = "订单id", requiredMode = Schema.RequiredMode.REQUIRED, example = "22273")
    @NotNull(message = "订单id不能为空")
    private Long orderId;

    @Schema(description = "服务时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "服务时间不能为空")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime startTime;

    @Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
    @NotNull(message = "项目名称不能为空")
    private String itemName;

    @Schema(description = "支付价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "25844")
    @NotNull(message = "支付价格不能为空")
    private Integer payPrice;

    @Schema(description = "支付方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "支付方式不能为空")
    private Integer payType;

    @Schema(description = "余额", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "余额不能为空")
    private Integer balance;

    @Schema(description = "艾灸师id", requiredMode = Schema.RequiredMode.REQUIRED, example = "22273")
    @NotNull(message = "艾灸师id不能为空")
    private Long masterId;

    @Schema(description = "艾灸师名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @NotNull(message = "艾灸师名字不能为空")
    private String masterName;

    @Schema(description = "艾灸师头像", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "艾灸师头像不能为空")
    private String masterAvatar;

    @Schema(description = "店铺名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @NotNull(message = "店铺名称不能为空")
    private String tenantName;

    @Schema(description = "店铺图片", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "店铺图片不能为空")
    private String tenantPic;

    @Schema(description = "综合评分", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "综合评分不能为空")
    private Integer balanceScore;

    @Schema(description = "技法评分", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "技法评分不能为空")
    private Integer skillScore;

    @Schema(description = "服务评分", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "服务评分不能为空")
    private Integer serviceScore;

    @Schema(description = "效果评分", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "效果评分不能为空")
    private Integer resultScore;

    @Schema(description = "是否确认", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否确认不能为空")
    private Boolean confirmed;

    @Schema(description = "会员id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15635")
    @NotNull(message = "会员id不能为空")
    private Long memberId;

    @Schema(description = "会员姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
    @NotNull(message = "会员姓名不能为空")
    private String memberName;

}
